#include "bsp_led.h"


/**
  -  @brief  初始化LED灯
  -  @note   None
  -  @param  led：LED1,LED2,LED3,LED4
  -  @retval None
 */
static void bsp_led_gpio_init(void)
{
	rcu_periph_clock_enable(LED_GPIO_CLK);/* 使能GPIO时钟 */
	gpio_mode_set(LED_GPIO_PORT, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE, LED_PIN);  /* GPIO模式配置 */
	gpio_output_options_set(LED_GPIO_PORT, GPIO_OTYPE_PP, GPIO_OSPEED_2MHZ, LED_PIN); /* 输出模式配置类型与速度 */
}

 /**
  -  @brief  初始化所有LED灯，并设置LED为关闭状态
  -  @note   None
  -  @param  None
  -  @retval None
 */
void bsp_led_init(void)
{
	bsp_led_gpio_init();
	bsp_led_off();
}
 /**
  -  @brief  点亮led
  -  @note   None
  -  @param  led：LED1,LED2,LED3,LED4
  -  @retval None
 */
void bsp_led_on(void)
{
    gpio_bit_set(LED_GPIO_PORT, LED_PIN);
}

/**
 -  @brief  熄灭led
 -  @note   None
 -  @param  led：LED1,LED2,LED3,LED4
 -  @retval None
*/
void bsp_led_off(void)
{
    gpio_bit_reset(LED_GPIO_PORT, LED_PIN);
}

/**
 -  @brief  翻转led
 -  @note   None
 -  @param  led：LED1,LED2,LED3,LED4
 -  @retval None
*/
void bsp_led_toggle(void)
{
    gpio_bit_toggle(LED_GPIO_PORT, LED_PIN);
}

/**
 -  @brief  获取LED状态
 -  @note   None
 -  @param  None
 -  @retval 0：LED灯熄灭，1：LED灯亮了
*/
uint8_t bsp_led_get_status(void)
{
    FlagStatus led_status = RESET;
    led_status = gpio_input_bit_get(LED_GPIO_PORT, LED_PIN);
    if (led_status == RESET)  return 0;
    else	return 1;
}
